package L628;

import java.util.HashSet;
import java.util.PriorityQueue;
import java.util.Set;

/**
 * @program: javase
 * @description:
 * @author: luolidong
 * @create: 2021-06-28 09:24
 * @version: 1.0
 */
public class UglyNum {
    //只能被2,3,5因子的数
    public int nthUglyNumber(int n) {
        int[] nums={2,3,5};
        PriorityQueue<Integer> queue=new PriorityQueue<>();
        //可能有重复元素
        Set<Integer> set=new HashSet<>();
        queue.offer(1);
        set.add(1);
        int ugly=1;
        //每次从优先队列中弹出一个最小的丑数
        for (int i = 0; i <n ; i++) {
            ugly=queue.poll();
//            将该丑数的2,3,5倍数放到set中,没有重复就放入队列
            for (int j = 0; j < nums.length; j++) {
                if(set.add(ugly*nums[j])){
                    queue.offer(ugly*nums[j]);
                }
            }
        }
        return ugly;

    }

    public static void main(String[] args) {
        String s="cabc";
        int c = s.indexOf('c',1);
        System.out.println(c);
        int c1 = s.indexOf('h');
        System.out.println(c1);
    }
}
